﻿using System;
using System.Text;
using System.Collections.Generic;//for List<T>

namespace MBT.Utils
{
    /// <summary>
    /// If the domain is "bool" or "enum", use this class
    /// </summary>
    internal class FiniteDomainEnumarator
    {
        /// <summary>
        /// Enumerate all possible values of an enum (Used in parameter generation)
        /// </summary>
        /// <param name="e">Type of an enum as input</param>
        /// <returns>list of possible values for this enum</returns>
        public static List<object> EnumerateEnum(Type e)
        {
            List<object> possibleValues = new List<object>();
            foreach (object element in Enum.GetValues(e))
            {
                possibleValues.Add(element);
            }
            return possibleValues;
        }

        /// <summary>
        /// Enumerate all possible values of type Boolean {true, false} (Used in parameter generation)
        /// </summary>
        /// <returns>true and false</returns>
        public static List<bool> EnumerateBools()
        {
            List<bool> possibleValues = new List<bool>();
            possibleValues.Add(true);
            possibleValues.Add(false);
            return possibleValues;
        }
    }
}
